// pages/notice/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    categories: [
      { id: 0, name: '全部' },
      { id: 1, name: '重要通知' },
      { id: 2, name: '教务公告' },
      { id: 3, name: '活动通知' },
      { id: 4, name: '后勤服务' },
      { id: 5, name: '就业信息' }
    ],
    activeCategory: 0,
    announcements: [],
    page: 1,
    loading: false,
    noMore: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.loadAnnouncements()
  },
// 加载公告数据
loadAnnouncements() {
  if (this.data.loading || this.data.noMore) return
  
  this.setData({ loading: true })
  
  // 模拟API请求
  setTimeout(() => {
    const newData = this.generateMockData()
    this.setData({
      announcements: [...this.data.announcements, ...newData],
      page: this.data.page + 1,
      loading: false,
      noMore: this.data.page >= 3 // 模拟数据加载完毕
    })
  }, 800)
}, // 生成模拟数据
generateMockData() {
  const types = ['重要通知', '教务公告', '活动通知', '后勤服务', '就业信息']
  const departments = ['教务处', '学生处', '后勤集团', '就业指导中心', '校团委']
  
  return Array(5).fill().map((_, i) => ({
    id: this.data.page * 10 + i,
    title: `关于${['校园活动', '课程调整', '宿舍维修', '招聘会', '奖学金'][i]}的通知`,
    content: `各位同学请注意，学校将于近期举办${['校园文化节', '教学评估', '宿舍设施维护', '春季招聘会', '奖学金评选'][i]}活动，请相关同学准时参加。详细内容请查看附件。`,
    department: departments[Math.floor(Math.random() * departments.length)],
    time: new Date(Date.now() - Math.random() * 30 * 24 * 60 * 60 * 1000),
    important: Math.random() > 0.7,
    type: types[Math.floor(Math.random() * types.length)]
  }))
},

// 分类切换
switchCategory(e) {
  const categoryId = e.currentTarget.dataset.id
  if (this.data.activeCategory === categoryId) return
  
  this.setData({
    activeCategory: categoryId,
    announcements: [],
    page: 1,
    noMore: false
  }, () => {
    this.loadAnnouncements()
  })
},

// 下拉刷新
onRefresh() {
  this.setData({
    announcements: [],
    page: 1,
    noMore: false
  }, () => {
    this.loadAnnouncements()
    wx.stopPullDownRefresh()
  })
},

// 上拉加载
loadMore() {
  this.loadAnnouncements()
},

// 查看详情
viewDetail(e) {
  const id = e.currentTarget.dataset.id
  wx.navigateTo({
    url: `/pages/notice/detail?id=${id}`
  })
},

// 搜索
onSearch() {
  wx.navigateTo({
    url: '/pages/notice/search'
  })
},

// 时间格式化
formatTime(date) {
  const d = new Date(date)
  const now = new Date()
  const diff = (now - d) / 1000
  
  if (diff < 60) return '刚刚'
  if (diff < 3600) return `${Math.floor(diff/60)}分钟前`
  if (diff < 86400) return `${Math.floor(diff/3600)}小时前`
  if (diff < 2592000) return `${Math.floor(diff/86400)}天前`
  
  return `${d.getFullYear()}-${d.getMonth()+1}-${d.getDate()}`
},
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})